﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ЭлектронныеДокументыКлиент
	{
		////////////////////////////////////////////////////////////////////////////////
		// ЭлектронныеДокументыКлиент: механизм обмена электронными документами.
		//
		////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////
		// ПРОГРАММНЫЙ ИНТЕРФЕЙС
		// Получает текстовое представление версии электронного документа.
		//
		// Параметры:
		//  СсылкаНаВладельца - Ссылка на объект ИБ, состояние версии электронного документа которого необходимо получить.
		//

		public object ПолучитьТекстСостоянияЭД(/*СсылкаНаВладельца, Форма = Неопределено*/)
		{
			//Гиперссылка = Ложь;
			//ТекстСостоянияЭД = ЭлектронныеДокументыСлужебный.ТекстСостоянияЭД(СсылкаНаВладельца, Гиперссылка);
			if(true/*НЕ Форма = Неопределено*/)
			{
				//СтруктураПараметров = Новый Структура();
				//СтруктураПараметров.Вставить("ТекстСостоянияЭД", ТекстСостоянияЭД);
				//СтруктураПараметров.Вставить("ВидОперации", "УстановкаГиперссылки");
				//СтруктураПараметров.Вставить("ЗначениеПараметра", Гиперссылка);
				//ЭлектронныеДокументыПереопределяемый.ИзменитьСвойстваЭлементовФормы(Форма, СтруктураПараметров);
			}
			return null;
		}
		////////////////////////////////////////////////////////////////////////////////
		// Работа с электронными документами
		// Открывает форму просмотра электронного документа.
		//
		// Параметры:
		//  СсылкаНаЭД        - ссылка на электронный документ, открываемый для просмотра
		//  ПараметрыОткрытия - структура, дополнительные параметры просмотра
		//  ВладелецФормы     - управляемая форма
		//

		public void ОткрытьЭДДляПросмотра(/*СсылкаНаЭД, ПараметрыОткрытия = Неопределено, ВладелецФормы = Неопределено*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(СсылкаНаЭД)*/)
			{
			}
			if(true/*НЕ ВладелецФормы = Неопределено*/)
			{
				//ПараметрыФормы = Новый Структура("СсылкаНаОбъект", СсылкаНаЭД);
				//ОткрытьФорму("Справочник.ЭДПрисоединенныеФайлы.Форма.ФормаПросмотраЭД", ПараметрыФормы, ВладелецФормы);
			}
		}
		// Открывает форму со списком электронных документов для данного владельца.
		//
		// Параметры:
		//  СсылкаНаОбъект - ссылка на объект ИБ, электронные документы которого надо увидеть.
		//  ПараметрыОткрытия - структура, дополнительные параметры просмотра списка электронных документов.
		//

		public void ОткрытьСписокЭД(/*СсылкаНаОбъект, ПараметрыОткрытия = Неопределено*/)
		{
			if(true/*НЕ ЭлектронныеДокументыПереопределяемый.ЕстьПравоЧтенияЭД()*/)
			{
				//ЭлектронныеДокументыКлиентСлужебный.СообщитьПользователюОНарушенииПравДоступа();
			}
			if(true/*НЕ ЗначениеЗаполнено(СсылкаНаОбъект)*/)
			{
			}
			//ПараметрыФормы = Новый Структура("ОбъектОтбора", СсылкаНаОбъект);
			if(true/*ПараметрыОткрытия = Неопределено*/)
			{
				//ОткрытьФорму("Обработка.ЭлектронныеДокументы.Форма.СписокЭД", ПараметрыФормы);
			}
		}
		// Перезаполняет документ ИБ на основании актуального ЭД
		//
		// Параметры:
		//  ПараметрКоманды - ссылка на объект
		//  Источник - управляемая форма
		//

		public void ПерезаполнитьДокумент(/*ПараметрКоманды, Источник=Неопределено*/)
		{
			if(true/*НЕ (ЭлектронныеДокументыПереопределяемый.ЕстьПравоОбработкиЭД())*/)
			{
				//ЭлектронныеДокументыКлиентСлужебный.СообщитьПользователюОНарушенииПравДоступа();
			}
			//МассивСсылок = ЭлектронныеДокументыКлиентСлужебный.ПолучитьМассивПараметров(ПараметрКоманды);
			if(true/*МассивСсылок = Неопределено*/)
			{
			}
			//СоответствиеВладельцевИЭД = ЭлектронныеДокументыСлужебный.ПолучитьСоответствиеВладельцевИЭД(МассивСсылок);
			//СопоставлятьНоменклатуруПередЗаполнениемДокумента = ЭлектронныеДокументыПереопределяемый.СопоставлятьНоменклатуруПередЗаполнениемДокумента();
			if(true/*СопоставлятьНоменклатуруПередЗаполнениемДокумента*/)
			{
			}
			//КолОбработанных = 0;
			//ЭлектронныеДокументыСлужебный.ПерезаполнитьДокументыИБПоЭД(СоответствиеВладельцевИЭД, КолОбработанных);
			if(true/*КолОбработанных > 0*/)
			{
				//Оповестить("ОбновитьСостояниеЭД");
				//Оповестить("ОбновитьДокументИБПослеЗаполнения");
			}
			if(true/*НЕ СопоставлятьНоменклатуруПередЗаполнениемДокумента*/)
			{
			}
			//ТекстСостоянияВывод = НСтр("ru = 'Заполнено: (%1)'");
			//ТекстСостоянияВывод = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСостоянияВывод, КолОбработанных);
			//ТекстЗаголовка = НСтр("ru = 'Обмен электронными документами'");
			//ПоказатьОповещениеПользователя(ТекстЗаголовка, ,ТекстСостоянияВывод);
		}
		// Открывает актуальный ЭД по документу ИБ
		//
		// Параметры:
		//  ПараметрКоманды - ссылка на документ ИБ
		//  Источник - управляемая форма
		//

		public void ОткрытьАктуальныйЭД(/*ПараметрКоманды, Источник = Неопределено*/)
		{
			//ОчиститьСообщения();
			if(true/*НЕ ЭлектронныеДокументыПереопределяемый.ЕстьПравоЧтенияЭД()*/)
			{
				//ЭлектронныеДокументыКлиентСлужебный.СообщитьПользователюОНарушенииПравДоступа();
			}
			//МассивСсылок = ЭлектронныеДокументыКлиентСлужебный.ПолучитьМассивПараметров(ПараметрКоманды);
			if(true/*МассивСсылок = Неопределено*/)
			{
			}
			//СоответствиеВладельцевИЭД = ЭлектронныеДокументыСлужебный.ПолучитьСоответствиеВладельцевИЭД(МассивСсылок);
		}
		// Открывает форму с деревом электронных документов для данного владельца.
		//
		// Параметры:
		//  СсылкаНаОбъект - ссылка на объект ИБ, электронные документы которого надо увидеть,
		//  ПараметрыОткрытия - структура, дополнительные параметры просмотра дерева электронных документов.
		//

		public void ОткрытьДеревоЭД(/*СсылкаНаОбъект, ПараметрыОткрытия = Неопределено*/)
		{
			if(true/*НЕ (ЭлектронныеДокументыПереопределяемый.ЕстьПравоЧтенияЭД())*/)
			{
				//ЭлектронныеДокументыКлиентСлужебный.СообщитьПользователюОНарушенииПравДоступа();
			}
			if(true/*НЕ ЗначениеЗаполнено(СсылкаНаОбъект)*/)
			{
			}
			//ПараметрыФормы = Новый Структура("ОбъектОтбора", СсылкаНаОбъект);
			if(true/*ПараметрыОткрытия = Неопределено*/)
			{
				//ОткрытьФорму("Обработка.ЭлектронныеДокументы.Форма.ДеревоЭД", ПараметрыФормы, , СсылкаНаОбъект.УникальныйИдентификатор());
			}
		}
		// Процедура создает, подписывает и отправляет электронный документ.
		//
		// Параметры:
		//  ПараметрКоманды - СсылкаНаОбъект - ссылка на объект ИБ, электронные документы которого надо отправить,
		//  ЭД - электронный документ, который надо подписать, отправить.
		//

		public void СформироватьПодписатьОтправитьЭД(/*ПараметрКоманды, ЭД = Неопределено*/)
		{
			//МассивСсылок = ЭлектронныеДокументыКлиентСлужебный.ПолучитьМассивПараметров(ПараметрКоманды);
			if(true/*МассивСсылок = Неопределено*/)
			{
			}
			//ЭлектронныеДокументыКлиентСлужебный.ОбработатьЭД(МассивСсылок, "СформироватьУтвердитьПодписатьОтправить", , ЭД);
			//Оповестить("ОбновитьСостояниеЭД");
		}
		// Процедура создает новый электронный документ.
		//
		// Параметры:
		//  ПараметрКоманды - СсылкаНаОбъект - ссылка на объект ИБ, электронные документы которого надо отправить,
		//

		public void СформироватьНовыйЭД(/*ПараметрКоманды*/)
		{
			//МассивСсылок = ЭлектронныеДокументыКлиентСлужебный.ПолучитьМассивПараметров(ПараметрКоманды);
			if(true/*МассивСсылок = Неопределено*/)
			{
			}
			//ЭлектронныеДокументыКлиентСлужебный.ОбработатьЭД(МассивСсылок, "Сформировать");
		}
		// Процедура отправляет повторно электронный документ.
		//
		// Параметры:
		//  ПараметрКоманды - СсылкаНаОбъект - ссылка на объект ИБ, электронные документы которого надо отправить,
		//  ЭД - электронный документ, который надо подписать, отправить.
		//

		public void ОтправитьПовторноЭД(/*ПараметрКоманды, ЭД = Неопределено*/)
		{
			//МассивСсылок = ЭлектронныеДокументыКлиентСлужебный.ПолучитьМассивПараметров(ПараметрКоманды);
			if(true/*МассивСсылок = Неопределено*/)
			{
			}
			//ЭлектронныеДокументыКлиентСлужебный.ОбработатьЭД(МассивСсылок, "Отправить", , ЭД);
		}
		// Проверяет на модифицированность объект.
		//
		// Параметры:
		//  Объект - объекта, модифицированность которого надо проверить;
		//  Форма - форма объекта, модифицированность которого надо проверить.
		//
		// Возвращаемое значение:
		//  Результат - Булево - результат проверки модифицированности формы объекта.
		//

		public object ОбъектМодифицирован(/*Объект, Форма*/)
		{
			//Результат = Ложь;
			//РезультатПроверки = Неопределено;
			//ЭлектронныеДокументыКлиентПереопределяемый.ОбъектМодифицирован(Объект, Форма, РезультатПроверки);
			if(true/*РезультатПроверки = Неопределено*/)
			{
				//Результат = Истина;
				if(true/*Форма.Модифицированность ИЛИ НЕ ЗначениеЗаполнено(Объект.Ссылка)*/)
				{
					//Проведен    = Метаданные.Документы.Содержит(Объект.Метаданные()) И Объект.Проведен;
					/*СтрПроведен = ?(Проведен, "записать и провести.
				|Записать и провести?", "записать.
				|Записать?");*/
					//ШаблонСообщения = НСтр("ru = 'Документ изменен. Для формирования электронного документа его необходимо %1'");
					//ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, СтрПроведен);
					//Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ОКОтмена, , КодВозвратаДиалога.Отмена, "Документ изменен.");
					if(true/*Ответ = КодВозвратаДиалога.ОК*/)
					{
						if(true/*Проведен*/)
						{
						}
						if(true/*Не Отказ*/)
						{
							//Результат = Ложь;
						}
					}
				}
			}
			return null;
		}
		// Отправка и получение электронных документов одной командой.
		//
		//

		public void ОтправитьПолучитьЭлектронныеДокументы(/**/)
		{
			//ЭлектронныеДокументыКлиентСлужебный.ОтправитьПолучитьЭлектронныеДокументы();
		}
	}
}
